package com.xinz.srmi;

public interface NativeConfig {
	public abstract RequestHeaderProvider getRequestHeaderProvider();

	public abstract RemoteInvokeListener getRemoteInvokListener();

	public abstract ErrorHandler getErrorHandler();

	public abstract NativeInvokFilter getNativeInvokFilter();

	public abstract ResponseHeaderProvider getResponseHeaderProvider();
	
	
	public static class Abstract implements NativeConfig{
		RequestHeaderProvider provider = new RequestHeaderProvider.Abstract();
		@Override
		public RequestHeaderProvider getRequestHeaderProvider() {
			return provider;
		}
		RemoteInvokeListener remoteInvokListener = new RemoteInvokeListener.Abstract();
		@Override
		public RemoteInvokeListener getRemoteInvokListener() {
			return remoteInvokListener;
		}
		ErrorHandler errorHandler = new ErrorHandler.Abstract();
		@Override
		public ErrorHandler getErrorHandler() {
			return errorHandler;
		}
		NativeInvokFilter nativeInvokFilter = new NativeInvokFilter.Abstract();
		@Override
		public NativeInvokFilter getNativeInvokFilter() {
			return nativeInvokFilter;
		}
		ResponseHeaderProvider responseHeaderProvider = new ResponseHeaderProvider.Abstract();
		@Override
		public ResponseHeaderProvider getResponseHeaderProvider() {
			return responseHeaderProvider;
		}
		
	}

}
